package com.uade.business;

import java.util.List;

import com.uade.model.*;
import com.uade.model.exceptions.*;

/**
 * Interfaz de comunicacion con el modulo de servicios remotos Contiene todos
 * los metodos de comunicacion con la capa de datos
 * 
 * @author Francisco
 * 
 */
public interface BusinessDelegate {

	// Usuarios
	Usuario loguearse(String nombre, String password) throws LoginException;

	void altaUsuario(Usuario usuario);

	// Articulos
	List<Articulo> listarArticulosPorRanking() throws NotFoundException;

	Articulo busqueda(int id) throws NotFoundException;

	List<Articulo> busqueda(String nombre, String categoria)
			throws NotFoundException;

	// Compra

	List<Compra> consultaCompras(int idUsuario);

	void recepcionEstado(String estado, int idCompra) throws NotFoundException;

	void checkOutCompra(Compra compr) throws BusinessException,
			LogisticaMonitoreoException;

	// Configuracion
	List<Configuracion> obtenerConfiguraciones();

	Configuracion obtenerConfiguracionLogisticaMonitoreoVenta();

	Configuracion obtenerConfiguracionLogisticaMonitoreoLog();

	void modificarConfiguracion(Configuracion configuracion);

	// Ranking

	void actualizarRanking(Ranking rankings) throws NotFoundException;

}
